/**
 *
 *    DUT Informatique - IUT A - Universite des Sciences et Technologies de Lille 1 - Villeneuve d'Ascq
 *    Cours AP12 - Revision - 421 (QVU)
 *    http://moodle.univ-lille1.fr/course/view.php?id=1089
 *    http://dutinfo.tk
 *
 *    @author : Yann Secq
 *              Frederic Guyomarch
 *              <a href="mailto:charles.herlin@etudiant.univ-lille1.fr">Charles Herlin</a>
 *
 *
 *
 */
 
 class QVU  extends Program {
    void algorithm() { 

	char tab = 9;

	println("\n"+tab+"    ***** Jeu de 421 *****\n\n");

	//Saisie des combinaisons
        
	println(tab+"*** Combinaison A ***\n");
        print("Entrez le premier nombre : ");
	int a1 = readInt();
	print("Entrez le deuxieme nombre : ");
	int a2 = readInt();
	print("Entrez le troisieme nombre : ");
	int a3 = readInt();

	while((a1<1||a1>6)||(a2<1||a2>6)||(a3<1||a3>6)){
	    println("\n*** Nombres incorrects dans la combinaison A ***\n  Veuillez entrer a nouveau\n");
	     print("Entrez le premier nombre : ");
	     a1 = readInt();
	     print("Entrez le deuxieme nombre : ");
	     a2 = readInt();
	     print("Entrez le troisieme nombre : ");
	     a3 = readInt();
	}
	
	println("\n");

	println(tab+"*** Combinaison B ***\n");
        print("Entrez le premier nombre : ");
	int b1 = readInt();
	print("Entrez le deuxieme nombre : ");
	int b2 = readInt();
	print("Entrez le troisieme nombre : ");
	int b3 = readInt();

	while((b1<1||b1>6)||(b2<1||b2>6)||(b3<1||b3>6)){
	    println("\n*** Nombres incorrects dans la combinaison B ***\n  Veuillez entrer a nouveau\n");
	     print("Entrez le premier nombre : ");
	     b1 = readInt();
	     print("Entrez le deuxieme nombre : ");
	     b2 = readInt();
	     print("Entrez le troisieme nombre : ");
	     b3 = readInt();
	}
	
	
	//phase de tri

	if(a1>a2 && a1>a3)
	    if(a3>a2){
		int t = a2;
		a2=a3;
		a3=t;
	    }
	if(a2>a1 && a2>a3){
	    int t=a1;
	    a1=a2;
	    a2=t;
	    if(a3>a2){
	        t = a2;
		a2=a3;
		a3=t;
	    }
	}

	if(a3>a1 && a3>a2){
	    int t=a1;
	    a1=a3;
	    a3=t;
	    if(a3>a2){
		t = a2;
		a2=a3;
		a3=t;
	    }
	}


	if(b1>b2 && b1>b3)
	    if(b3>b2){
		int t = b2;
		b2=b3;
		b3=t;
	    }
	if(b2>b1 && b2>b3){
	    int t=b1;
	    b1=b2;
	    b2=t;
	    if(b3>b2){
	        t = b2;
		b2=b3;
		b3=t;
	    }
	}

	if(b3>b1 && b3>b2){
	    int t=b1;
	    b1=b3;
	    b3=t;
	    if(b3>b2){
		t = b2;
		b2=b3;
		b3=t;
	    }
	}
	


     //determination des combinaisons

     String comba;
     int scora;
	 
     if(a1==4 && a2==2 && a3==1){
	 comba = "421";
	 scora = 5;
     }
     else if(a1==1 && a2==1 && a3==1){
	 comba = "111";
	 scora = 4;
     }
     else if (a1==1 && a2==1){
	 comba = "11x";
	 scora = 3;
     }
     else if(a1 == a2 && a1 == a3){
	 comba = "xxx";
	 scora = 2;
     }
     else if(a1 == a2+1 && a1 == a3+2){
	 comba = "seq";
	 scora = 1;
     }
     else{
	 comba = "xyz";
	 scora = 0;
     }

     
     String combb;
     int scorb;
	 
     if(b1==4 && b2==2 && b3==1){
	 combb = "421";
	 scorb = 5;
     }
     else if(b1==1 && b2==1 && b3==1){
	 combb = "111";
	 scorb = 4;
     }
     else if (b1==1 && b2==1){
	 combb = "11x";
	 scorb = 3;
     }
     else if(b1 == b2 && b1 == b3){
	 combb = "xxx";
	 scorb = 2;
     }
     else if(b1 == b2+1 && b1 == b3+2){
	 combb = "seq";
	 scorb = 1;
     }
     else{
	 combb = "xyz";
	 scorb = 0;
     }

     println("\n\nLa combinaison identifee pour A est ["+comba+"] et pour B est ["+combb+"].");

     println(tab+comba+" vs "+combb+"\n");

     if(scora>scorb)
	 println(tab+"A est le vainqueur");
     else if(scorb>scora)
	 println(tab+"B est le vainqueur");
     else{
	 if(scora == 5 || scora == 4)
	      println(tab+"Egalite");
	 else if(scora == 3){
	     if(a3>b3)
		 println(tab+"A est le vainqueur");
	     else if(b3>a3)
		 println(tab+"B est le vainqueur");
	     else
		  println(tab+"Egalite");
	 }
	 else if(scora == 2 || scora == 1){
	      if(a1>b1)
		 println(tab+"A est le vainqueur");
	      else if(b1>a1)
		 println(tab+"B est le vainqueur");
	      else
		  println(tab+"Egalite");
	 }
	 else if(scora == 0){
	     scora = 100*a1+10*a2+a3;
	     scorb = 100*b1+10*b2+b3;
	     if(scora>scorb)
		 println(tab+"A est le vainqueur");
	     else if(scorb>scora)
		 println(tab+"B est le vainqueur");
	      else
		  println(tab+"Egalite");
	 }
     }
		 
	 
     println("\n");
 }

}

